/*jslint maxerr: 50, indent: 4, browser: true */
/*global define */

(function () {
    "use strict";

    define("isFinite", ["mergeModules", "init"], function (make) {
        var buri = make.mergeModules(arguments),
            config = {
                "compatability": {}
            },
            func = window.isFinite,
            isFinite;

        if (!config.compatability.all && !config.compatability["object.hasOwnProperty"] && typeof func === "function") {
            isFinite = func;
        } else {
            isFinite = function (obj)  {
                return !isNaN(obj) && obj !== Number.POSITIVE_INFINITY && obj !== Number.NEGATIVE_INFINITY;
            }
        }

        isFinite.init = function (options) {
            buri.init(config, options);
        };

        return {
            "isFinite": isFinite
        };
    });
}());
